The present invention relates generally to data storage systems. More particularly, the present invention relates to a system, structure, and method for managing multiple sets of different host computer operating requirements by a disk drive array controller.
Disk drives in all computer systems are susceptible to failures caused by temperature variations, head crashes, motor failure, controller failure, and changing voltage conditions. Modern computer systems require, or at least benefit from, a fault-tolerant data storage system, for protecting data in the data storage system against instances of disk drive failure. One approach to meeting this need is to provide a redundant array of independent disks (RAID) system operated by a disk array controller (controller).
Referring to FIG. 1, there is shown a block diagram illustrating aspects of a data storage system 100 configured as a RAID, according to the state of the art. The data storage system 100 includes controller 102 coupled across I/O bus 104 to one or more host computers 118-125. The controller 102 is also coupled across I/O bus 114 to a rack of disk drives 106-110. I/O bus 104 and I/O bus 114 can each respectively be one of several different types of I/O buses, including, for example, a parallel SCSI bus, an FC-AL bus, a Fibre Channel Fabric bus, a USB bus, or an IEEE 1394 bus.
The controller 102 coordinates the disk drives 106-110 so they appear to host computers 118-125 as a single logical drive, but can take advantage of the multiple physical drives 106-110 by storing data redundantly across the disk drives 106-110, thus protecting against data loss from any single disk drive 106-110. A logical unit (xe2x80x9cLUxe2x80x9d) is the medium used by controller 102 to store and retrieve data respectively to and from the disk drives 106-110. (LUs and are known in the art).
A controller 102 typically maps from eight (8) to one-hundred-and-twenty-eight (128) LUs across each of the disk drives 106-110. (Procedures to perform such mapping are known in the art.) For example, LUs 0-X and 1-X are mapped across disk drives 106-108, illustrated respectively as LU 0-A, LU 1-A, LU 0-B, and LU 1-B, and the like.
Controller 102 processes I/O requests from host computers 118-125. Such I/O requests include, for example, Small Computer System Interface (SCSI) I/O requests, which are known in the art of computer programming. Host computers 118-125 typically execute one or more computer programs (individual computer programs are not shown) that have particular requirements with respect to the operational behavior of the LUs 0-N in response to processing such I/O requests.
For example, consider that host computer 118 is used to execute a video playback computer program (not shown), and that host computer 120 is used to execute a video capture computer program (not shown). The video playback application (host computer 118) requires a timely response from each respective disk drive 106-110 to every read data request (for example, a SCSI read data request) that it sends to controller 102, such that a playback operation of a video image (not shown) by the video playback application is not interrupted by a slow return of the requested data from any respective disk drive 106-110.
In contrast, the video capture application (host computer 120) does not require a timely response from each respective disk drive 106-110 to every I/O request that it sends to controller 102. However, the video capture application does require each respective disk drive 106-110 to implement error recovery information to ensure that the video data that is written to each respective disk drive 106-110 by the video capture application is stored with no errors. Such error recovery information is known in the art of computer programming.
If each disk drive 106-110 were to be configured to implement such error recovery information to the benefit of computer""s 118 video playback application, a write data request sent by the computer""s 118 video capture application may result in insufficient amounts of error recovery information being written to disk drives 106-110. Analogously, if each disk drive 106-110 were to be configured to implement such error recovery information to the benefit of computer""s 120 video capture application, a read data request sent by the computer""s 120 video playback application may incur unacceptable delays reading data from disk drive 106-110. Therefore, it is evident that host computers 118 and 120 have different operating requirements with respect to the operational behavior of the LUs 0-N in response to processing such I/O requests.
When a data storage system 100 includes a plurality of host computers 118-125 that have diverse operating requirements with respect to at least a subset of one another, the host computers 118-125 (and controller 102) are said to be operating in a heterogeneous host computer 118-125 operating environment. For a host computer 118-125 in such an environment to properly operate, it must be able to configure the operational behavior of the LUs 0-N to parallel the host computer""s 118-125 particular requirements.
SCSI standards provide a procedure for a particular host computer 118-125 to specify its particular operating requirements with respect to the operation of each LU 0-N that is mapped across disk drives 106-110. This is typically accomplished through the use of the SCSI mode select command that includes one or more sets of mode parameter pages, wherein each mode parameter page identifies one or more of the particular host computer""s 118-125 particular operating requirements. The use and format of the mode select command and mode parameter pages are known in the art of computer programming.
Because disk drives 106-112 are being operated as a RAID, the particular host computer 118-125 will send the mode select command to the controller 102, whereupon, while processing any I/O requests from the particular computer 118-125, the controller 102 configures LUs 0-N to operate in the appropriate manner. According to SCSI standards (see SCSI-2 document ANSI X3.331 (1994), section 8.2.8, and SCSI-3 document ANSI X3.301 (1997), section 7.8), in a heterogeneous host computer 118-125 operating environment, controller 102 will store and maintain in random access memory (RAM) 103 one set of mode parameter pages per host computer 118-125 per LU 0-N, as illustrated by callout 105.
In such a heterogeneous computer 118-125 operating environment, significant problems are presented by the use of conventional techniques to store mode parameter pages in a controller 102. One problem is that the amount of RAM 103 that a controller 102 may be required to use to store multiple sets of mode parameter pages may be excessive. This problem is a function of the number of host computers 118-125 and the number of LUs 0-N in a data storage system 100.
The number of host computers 118-125 in data storage system 100 can vary. For example: (a) if I/O bus 104 is a parallel SCSI bus, as many as 15 host computers 118-125 can be coupled to controller 102; (b) if I/O bus 104 is an FC-AL bus, as many as 128 host computers 118-125 can be coupled to controller 102; and, (c) if I/O bus 104 is a Fibre Channel Fabric bus, then over 16 million host computers 118-125 can be coupled to the controller 102. However, recall that a controller 102 typically maps from 8 to 128 LUs 0-N across disk drives 106-110.
In light of the above, the number of mode parameter pages that a controller 102 may need to store in RAM 103 can widely vary. If controller 102 were coupled to 128 host computers in a heterogeneous computer operating environment that includes 128 LUs 0-N, controller 102 will be required to store and maintain a staggering 16,128 sets of mode parameter pages in its RAM 103. (This number is derived by providing one set of mode parameter pages multiplied by the number of host computers (128 host computers) multiplied by the number of LUs (128 LUs)). In a worst case scenario, if controller 102 were coupled to 16 million in such an environment, having 128 LUs 0-N, controller 102 will be required to store and maintain a staggering 32,768,000,000 sets of mode parameter pages in its RAM 103.
Consider that a single set of mode parameter pages may contain from 0 bytes of data to 800 bytes of data, usually about 400 bytes of data. (Note: the size of mode pages varies from device to device but is constant for a particular device.) A controller 102 will require, on average, at least 6,451,200 bytes of RAM 103 to store 16,128 sets of mode parameter pages. It can be appreciated, that the amount of RAM 103 required of controller 102 to store associated mode parameter pages for 16 million such host computers 118-125 will be significantly greater. Therefore, storing, by controller 102 in RAM 103, one set of mode parameter pages per host computer 118-125 per LU 0-N, depending upon the configuration of the data storage system 100, may require excessive amounts of RAM 103.
An additional problem presented by conventional techniques of storing one set of mode parameter pages per LU 0-N per host computer 118-125 in a heterogeneous host computer 118-125 environment, is that while managing I/O requests from multiple host computers 118-125, controller 102 may need to refer to such mode parameter pages many times. This is a problem because management of so many mode parameter pages is time-consuming. An objective of modem computers is fast I/O request response times. Time-consuming mode parameter page management is counter to fast I/O request response times. Therefore, it is desirable to simplify mode parameter page management.
In light of the above, there is a need to overcome the limitations placed on a controller 102 by standard conventions for storing and managing multiple sets of mode parameter pages in a heterogeneous host computer 118-125 operating environment. What is needed is a system, apparatus and method for: (a) reducing the amount of RAM 103 that may be needed by a controller 102 to store multiple sets of mode parameter pages in such an environment; and (b) simplifying the management of multiple sets of mode parameter pages in such an environment.